decode(x::Float16) = (b=bitstring(x); (b[1], b[2:6], b[7:16]))
decode(x::Float32) = (b=bitstring(x); (b[1], b[2:9], b[10:32]))
decode(x::Float64) = (b=bitstring(x); (b[1], b[2:12], b[13:54]))
decode (generic function with 3 methods)
println(Float16(1/3))
println(Float32(1/3))
println(Float64(1/3))
0.3333 0.33333334 0.3333333333333333
println(decode(Float16(1/3)))
println(decode(Float32(1/3)))
println(decode(Float64(1/3)))
('0', "01101", "0101010101")
('0', "01111101", "01010101010101010101011")
('0', "01111111101", "010101010101010101010101010101010101010101")
println(Float16(Float64(1/3)))
println(Float16(Float32(1/3)))
println(Float32(Float16(1/3)))
println(Float32(Float64(1/3)))
println(Float64(Float16(1/3)))
println(Float64(Float32(1/3)))
0.3333 0.3333 0.33325195 0.33333334 0.333251953125 0.3333333432674408
println(decode(Float16(1/3)))
println(decode(Float64(1/3)))
println(decode(Float64(Float16(1/3))))
('0', "01101", "0101010101")
('0', "01111111101", "010101010101010101010101010101010101010101")
('0', "01111111101", "010101010100000000000000000000000000000000")
result = Float32[]
r = 1.0 : 1000000.0
for i = 1:1000000
push!(result, nextfloat(r[i]) - r[i])
end
using Plots
plot(1:1000000, result)